@echo off
REM FTP客户端示例脚本集合 (Windows版本)
REM 展示各种使用场景和功能

echo 🚀 FTP客户端示例脚本集合
echo ==========================

REM 设置FTP服务器信息
set FTP_HOST=ftp.example.com
set FTP_PORT=21
set FTP_USERNAME=myuser
set FTP_PASSWORD=mypass

:menu
echo.
echo 请选择要查看的示例:
echo 1.  基本文件上传
echo 2.  带MD5校验的文件上传
echo 3.  带SHA256校验的文件下载
echo 4.  大文件传输（断点续传）
echo 5.  禁用断点续传
echo 6.  交互模式
echo 7.  调试模式
echo 8.  批量文件上传脚本
echo 9.  安全传输脚本
echo 10. 断点续传测试脚本
echo 11. 环境变量配置
echo 12. 错误处理脚本
echo 0.  退出
echo.

set /p choice=请输入选项 (0-12): 

if "%choice%"=="1" goto example1
if "%choice%"=="2" goto example2
if "%choice%"=="3" goto example3
if "%choice%"=="4" goto example4
if "%choice%"=="5" goto example5
if "%choice%"=="6" goto example6
if "%choice%"=="7" goto example7
if "%choice%"=="8" goto example8
if "%choice%"=="9" goto example9
if "%choice%"=="10" goto example10
if "%choice%"=="11" goto example11
if "%choice%"=="12" goto example12
if "%choice%"=="0" goto exit
echo 无效选项，请重新选择
goto menu

:example1
echo.
echo ℹ️ 示例1: 基本文件上传
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --upload test_file.txt --local-path test_file.txt
echo.
pause
goto menu

:example2
echo.
echo ℹ️ 示例2: 带MD5校验的文件上传
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --upload test_file.txt --local-path test_file.txt --checksum md5
echo.
pause
goto menu

:example3
echo.
echo ℹ️ 示例3: 带SHA256校验的文件下载
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --download test_file.txt --local-path downloaded_file.txt --checksum sha256
echo.
pause
goto menu

:example4
echo.
echo ℹ️ 示例4: 大文件传输（断点续传）
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --upload large_file.zip --local-path large_file.zip --checksum sha256
echo.
pause
goto menu

:example5
echo.
echo ℹ️ 示例5: 禁用断点续传
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --upload file.txt --local-path file.txt --no-resume
echo.
pause
goto menu

:example6
echo.
echo ℹ️ 示例6: 交互模式
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --interactive
echo.
pause
goto menu

:example7
echo.
echo ℹ️ 示例7: 调试模式
echo 命令: cargo run -p ftp-client -- --host %FTP_HOST% --port %FTP_PORT% --username %FTP_USERNAME% --password %FTP_PASSWORD% --upload file.txt --local-path file.txt --debug
echo.
pause
goto menu

:example8
echo.
echo ℹ️ 示例8: 批量文件上传脚本
echo.
echo @echo off
echo REM 批量文件上传脚本
echo.
echo set FTP_HOST=ftp.example.com
echo set FTP_PORT=21
echo set FTP_USERNAME=myuser
echo set FTP_PASSWORD=mypass
echo.
echo echo 开始批量上传...
echo.
echo echo 上传文件1...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload file1.txt --local-path file1.txt --checksum md5
echo.
echo echo 上传文件2...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload file2.txt --local-path file2.txt --checksum md5
echo.
echo echo 上传完成！
echo pause
echo.
pause
goto menu

:example9
echo.
echo ℹ️ 示例9: 安全传输脚本
echo.
echo @echo off
echo REM 安全传输脚本 - 使用SHA256校验
echo.
echo set FTP_HOST=ftp.example.com
echo set FTP_PORT=21
echo set FTP_USERNAME=myuser
echo set FTP_PASSWORD=mypass
echo.
echo echo 开始安全传输...
echo.
echo echo 安全传输文件: database_backup.sql
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload database_backup.sql --local-path database_backup.sql --checksum sha256
echo.
echo echo 验证文件完整性...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --download database_backup.sql --local-path verify_database_backup.sql --checksum sha256
echo.
echo echo 安全传输完成！
echo pause
echo.
pause
goto menu

:example10
echo.
echo ℹ️ 示例10: 断点续传测试脚本
echo.
echo @echo off
echo REM 断点续传测试脚本
echo.
echo set FTP_HOST=ftp.example.com
echo set FTP_PORT=21
echo set FTP_USERNAME=myuser
echo set FTP_PASSWORD=mypass
echo.
echo echo 创建测试文件...
echo fsutil file createnew test_large_file.bin 10485760
echo echo 测试文件创建完成: test_large_file.bin ^(10MB^)
echo.
echo echo 第一次上传^（模拟中断^）...
echo timeout /t 5 /nobreak ^& cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload test_large_file.bin --local-path test_large_file.bin --checksum md5
echo.
echo echo 第二次上传^（断点续传^）...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload test_large_file.bin --local-path test_large_file.bin --checksum md5
echo.
echo echo 清理测试文件...
echo del test_large_file.bin
echo echo 测试文件已清理
echo.
pause
goto menu

:example11
echo.
echo ℹ️ 示例11: 环境变量配置
echo.
echo @echo off
echo REM 使用环境变量配置FTP连接
echo.
echo REM 设置环境变量
echo set FTP_HOST=ftp.example.com
echo set FTP_PORT=21
echo set FTP_USERNAME=myuser
echo set FTP_PASSWORD=mypass
echo.
echo echo 使用环境变量配置的连接...
echo.
echo REM 上传文件
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload file.txt --local-path file.txt --checksum md5
echo.
echo REM 下载文件
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --download file.txt --local-path downloaded_file.txt --checksum sha256
echo.
echo echo 环境变量配置示例完成！
echo.
pause
goto menu

:example12
echo.
echo ℹ️ 示例12: 错误处理脚本
echo.
echo @echo off
echo REM 错误处理示例脚本
echo.
echo set FTP_HOST=ftp.example.com
echo set FTP_PORT=21
echo set FTP_USERNAME=myuser
echo set FTP_PASSWORD=mypass
echo.
echo echo 测试文件上传...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --upload test_file.txt --local-path test_file.txt --checksum md5
echo.
echo if %%errorlevel%% equ 0 ^(
echo     echo ✅ 文件上传成功
echo ^) else ^(
echo     echo ❌ 文件上传失败
echo     echo    请检查服务器连接和认证信息
echo ^)
echo.
echo echo 测试文件下载...
echo cargo run -p ftp-client -- --host %%FTP_HOST%% --port %%FTP_PORT%% --username %%FTP_USERNAME%% --password %%FTP_PASSWORD%% --download test_file.txt --local-path downloaded_file.txt --checksum sha256
echo.
echo if %%errorlevel%% equ 0 ^(
echo     echo ✅ 文件下载成功
echo ^) else ^(
echo     echo ❌ 文件下载失败
echo     echo    请检查服务器连接和文件权限
echo ^)
echo.
echo echo 错误处理示例完成！
echo.
pause
goto menu

:exit
echo.
echo ✅ 感谢使用FTP客户端示例脚本！
pause
exit /b 0
